/**
 * 一个Vue插件
 *
 *  导出
 *    1. 一个包含有 install 函数的对象
 *    2. 函数
 *
 *  一个插件主要的功能如下
 *    1. app.component()  注册全局组件
 *    2. app.directive()  注册全局自定义指令
 *    3. app.provide()    应用层级的提供商
 *    4. 往 app.config.globalProperties 增加属性或方法。
 *       增加的属性或方法在当前项目的所有组件中都可以通过 this 获取到。比如 VueRouter 中 $route 与 $router
 *
 *       在 Vue2 的时候，相同的操作，往 Vue.prototype 原型上添加
 *
 */

export default {
  /**
   * app.use(xxx, 可选配置项) 时触发
   *
   *    app     - 使用该插件的 应用实例
   *    options - 使用该插件时传递过来的 可选配置项
   */
  install(app, options) {
    console.log('zs 插件 app', app)
    console.log('zs 插件 options', options)

    app.config.globalProperties.$zs = '张三 18 男'
    app.config.globalProperties.$message = (msg) => {
      alert(msg)
    }
  }
}
